.TH std::ranges::drop_while_view::base 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::drop_while_view::base \- std::ranges::drop_while_view::base

.SH Synopsis
   constexpr V base() const& requires std::copy_constructible<V>; \fB(1)\fP \fI(since C++20)\fP
   constexpr V base() &&;                                         \fB(2)\fP \fI(since C++20)\fP

   Returns a copy of the underlying view.

   1) Copy constructs the result from the underlying view.
   2) Move constructs the result from the underlying view.

.SH Parameters

   \fI(none)\fP

.SH Return value

   A copy of the underlying view.

.SH Example


// Run this code

 #include <algorithm>
 #include <array>
 #include <iostream>
 #include <ranges>

 void print(auto first, auto last)
 {
     for (; first != last; ++first)
         std::cout << *first << ' ';
     std::cout << '\\n';
 }

 int main()
 {
     std::array data{1, 2, 3, 4, 5};
     print(data.cbegin(), data.cend());

     auto func = [](int x) { return x < 3; };
     auto view = std::ranges::drop_while_view{data, func};
     print(view.begin(), view.end());

     auto base = view.base(); // `base` refers to the `data`
     std::ranges::reverse(base); //< changes `data` indirectly
     print(data.cbegin(), data.cend());
 }

.SH Output:

 1 2 3 4 5
 3 4 5
 5 4 3 2 1
